//第一步:引入node_modules里面依赖axios
import axios from "axios";
//引入进度条
import nprogress from "nprogress";
//如果你看不到进度条是因为人家的样式你没有引入
import "nprogress/nprogress.css";
import store from "@/store";

//第二步:创建一个新的axios对象[包含一些其余配置项]
let request = axios.create({
  baseURL: "/wy", //基础路径,将来发请求的时候在路径当中都带有/api
  timeout: 5000, //超时的时间的设置
});
//请求拦截器
request.interceptors.request.use((config) => {
  //发请求之前进度条开始动
  nprogress.start();
  config.headers.token = store.state.user.token;
  config.headers["Content-Type"] = "application/x-www-form-urlencoded; charset=UTF-8"; 
  
  return config;
});

//响应拦截器:use回调  响应成功回调  响应失败的回调
request.interceptors.response.use(
  (res) => {
    //进度条消失
    nprogress.done();
    //数据响应成功回调
    return res.data; //简化服务器返回的数据
  },
  (err) => {
    //服务器数据：成功、失败。失败处理也很重要
    //存在代理跨域没有设置
    if (err.code == "ERR_NETWORK") {
      alert("兄弟代理跨域你没整");
    }
    //响应失败的判断可以在这里处理
    return new Promise(() => {}); //终止Promise，返回一个pending类型Promise对象
  }
);

//对外暴露:第二个requtes:要不厌请求、响应拦截器白写了
export default request;
